v0.6.3: meters centre on silence, slider glow/animation parity, tooltip fade#21
Merged
Conversation
…ip fade
1/2. The correlation + L/R balance pointers now sit at 0 (centre) when there's
no signal instead of jumping to +1 on open: the published atomics seeded to
0, plus a fast mean-square "energy" readout lets the meter detect silence
and glide the pointer back to centre over a ~550 ms damped release (never a
snap). Applies to both meters.
3. Window-scale change reverted to the instant single-step transform (a resize
doesn't want an animation).
4. Tooltips fade out over a weak, fast (~90 ms) non-linear ramp instead of
blinking off: a TooltipWindow subclass intercepts the hide and ramps window
alpha from the editor's vblank. Follows the UI Animations switch.
5. Slider blue-teal glow now has two distinct levels like the knob arc -- hover
glows, press glows more+wider -- as a gradient-opacity feather, not a hard
widened stroke; the thumb halo is likewise two-level and the thumb ring
keeps a faint glass micro-glow.
6. The un-filled (dark) part of a slider track lifts slightly on hover and more
on press, matching the knob face's two-level brightening.
7. Linear sliders now ease to their new value on a preset / A-B change (eased
vpos), like the knobs; a hand drag still tracks 1:1.
8. When the Widen algorithm swaps which knob occupies the bottom-right slot
(Haas Delay <-> Velvet Density), the incoming knob inherits the outgoing
knob's visual position so it sweeps continuously instead of teleporting; the
two-knob Chorus layout keeps its own separate per-knob registers.
https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
skyRolly
pushed a commit
that referenced
this pull request
Jun 17, 2026
…, layout restructure DSP - Crossover drag no longer pitch-shifts: per-sample octaves/sec cutoff slew on every split, the same cap Mono Maker uses (#1). - A/B "weird sound": at the silent duck bottom a forced swap now resets EVERY stateful node (Haas/Velvet/Chorus delay lines, all oversamplers, band + mono crossovers), so a same-algorithm A/B with different delay/rate/Drive can't replay old buffer contents as the duck lifts (#22). Layout (#2/#3) - The scope/meter block returns to its previous size: Advanced now GROWS the window downward by a full-width Multiband bar instead of squeezing the scope. - Phase + balance meters hug the scope with an equal gap (cluster centred), so the scope-to-phase and scope-to-balance gaps always match, both modes. Multiband module - Renamed everywhere to Multiband; default ON, greys out when disabled (#20). - Variable bands stay; new interaction model: width drag only near the width line (#15), add hint over the rest of a band (#14), click-drag adds a split AND positions it in one gesture (#16). - Split delete x shows to the right of a hovered split (#6); reset clamps a split between its neighbours so it can't jump across one (#18). - Double-click a split's number to type a frequency (7.7k / 7.7 / 7700 / 0.5, bare <= 20 = kHz) (#5). - Scroll latch holds its target until the pointer really moves (3 px) (#4); band width scroll is 1 %/notch (#17). - Smoother analyser: Catmull-Rom interpolation kills the low-end stair-stepping (#11); the noise floor is sunk below the frame so silence shows no green line (#10). - Visual: split gets the same feathered glow as the width line (#7), an integrated rounded cap instead of a floating dot (#9), its bottom connects to the frame at rest and breaks only on hover (#12); the add "+" hugs the top edge and is larger (#13); a band-pass crossover hint while dragging a split (#19); shorter tooltip (#8). Knobs/sliders (#21) - A reset (double-click / Option-click) and a typed value now play the eased position sweep when Animations are on; a drag, the scroll wheel and host automation still snap. https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Anamorph 0.6.2 feedback — all 8 items.
1 / 2. Correlation + L/R balance meters rest at 0 on silence.
Root cause of the open-time “0 → +1” sweep: the DSP’s published
fast/slowcorrelation atomics were initialised to1.0f, so before any audio the GUI read +1. Fixes: those atomics now seed to0, and the meter publishes a fast mean-square energy value the GUI uses to detect silence. When the input drops below ≈ −85 dBFS (or before any audio at all), both pointers glide back to centre over a ~550 ms damped release — never a snap — exactly per the DSP/mixing/aesthetic reasoning in the feedback. Both the phase meter and the L/R balance meter follow this.3. Window-scale animation reverted to the instant single-step transform — a resize doesn’t want an animation.
4. Tooltip fade-out. A
TooltipWindowsubclass intercepts JUCE’s hide (setVisible(false)) and ramps the window alpha down over a weak, fast ~90 ms non-linear (ease-out) tail, stepped from the editor’s vblank; new tips cancel the fade instantly. Follows the UI Animations switch (off ⇒ instant hide as before).5. Slider glow now two-level like the knob arc. Hover glows; press glows brighter and wider — a gradient-opacity feather (the many-layer halo), not a hard widened stroke. The thumb halo is likewise two-level (hover vs press), and the thumb ring keeps a faint always-on glass micro-glow that brightens a touch on interaction.
6. Slider un-filled track brightens on hover/press, two levels, mirroring the knob face lift.
7. Linear sliders sweep on preset / A-B change (eased
vpos, same mechanism as the knobs); a hand drag still tracks the cursor 1:1 (the eased position is bypassed while interacting).8. Bottom-right Widen knob-slot continuity. When the algorithm swaps which knob lives in that slot (Haas Delay ⇄ Velvet Density), the incoming knob inherits the outgoing knob’s on-screen position and sweeps continuously from there to its own value, instead of teleporting. The two-knob Chorus layout (Rate + Depth) is deliberately left to its own separate per-knob registers, as requested — each knob owns its
vpos, so the two-knob case never shares the single-knob slot’s start value.Gates: 14/14 DSP self-tests · no new compiler warnings · pluginval strictness 10 PASSED.
Note on #4: tooltip window per-pixel alpha is platform-composited; on the off chance a host ignores window alpha it degrades to the previous instant hide.
https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
Generated by Claude Code